#!/usr/bin/env python

##  flamingo - 2D Game Engine
##  Copyright (C) 2009 Bradley Zeis
##
##  This program is free software: you can redistribute it and/or modify
##  it under the terms of the GNU General Public License as published by
##  the Free Software Foundation, either version 3 of the License, or
##  (at your option) any later version.
##
##  This program is distributed in the hope that it will be useful,
##  but WITHOUT ANY WARRANTY; without even the implied warranty of
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
##  GNU General Public License for more details.
##
##  You should have received a copy of the GNU General Public License
##  along with this program.  If not, see <http://www.gnu.org/licenses/>.
##
##  Bradley Zeis
##  flamingoengine@gmail.com

"""Flamingo v0.1.0

Flamingo is an advanced 2d game engine written on top of pygame
<www.pygame.org>. Flamingo goes a step beyond other game engines
written in Python by supplying _all_ necessary tools for the
development of a game allowing the developer to focus on content
instead of the engine.

Dependencies:
    Python      - <www.python.org>              - 2.x series, 2.5+
    pygame      - <www.pygame.org>              - 1.9.x
    PyOpenGL    - <pyopengl.sourceforge.com>    - 3.0.x
    pybox2d     - <pybox2d.googlecode.com>      - 2.0.2b1
    numpy       - <numpy.scipy.org>             - 1.3.x
    PIL         - <>                            - 1.1.x
"""
## Define constants
__version__ = "0.1.0"
__author__ = "Bradley Zeis"

import os
fl_path = os.path.split(__file__)[0]

## Import flamingo modules
import constants
import backends

import fltime
import flcolor
import flmath
import image
import mesh

import sprite
import screen

import core
import util
import event
import objects
import audio
import game

## Import/Check dependencies
try:
    import pygame
    import Box2D as box2d
    import numpy
    import OpenGL

    if pygame.__version__[:3] != '1.9':
        raise ImportError, "Wrong pygame version (1.9.x required). Version {0} found."\
        .format(pygame.__version__)
    if box2d.__version__ != '2.0.2b1':
        raise ImportError, "Wrong pybox2d version (2.0.2b1 required). Version {0} found."\
        .format(box2d.__version__)
    if numpy.version.version[:3] != '1.3':
        raise ImportError, "Wrong numpy version (1.3.x required). Version {0} found."\
        .format(numpy.version.version)
    if OpenGL.version.__version__[:3] != '3.0':
        raise ImportError, "Wrong pyOpenGL version (3.0.x required). Version {0} found."\
        .format(OpenGL.version.__version__)
except ImportError, err:
    raise ImportError, err

__all__ = ["constants", "backends",
           "flcolor", "fltime", "flmath", "image", "mesh",
           "sprite", "screen",
           "core", "util", "event", "objects", "audio", "game"]
